ed Feb 27 19:16:50 2002 Owen Taylor <otaylor@redhat.com>
authorOwen Taylor <otaylor@src.gnome.org>
Thu, 28 Feb 2002 00:26:51 +0000 (00:26 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Thu, 28 Feb 2002 00:26:51 +0000 (00:26 +0000)
        * gdk/x11/gdkwindow-x11.c (gdk_window_new):
        * gdk/x11/gdkwindow-x11.c (gdk_window_get_events):
        * gdk/x11/gdkwindow-x11.c (gdk_window_set_events):
        * gdk/win32/gdkwindow-win32.c (gdk_window_set_events):
        * gdk/win32/gdkwindow-win32.c (gdk_window_new):
        * gdk/gdkwindow.h (struct _GdkWindowObject):
        * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
        Save the window's event mask in window->event_mask.

        * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
        generate expose events if GDK_EXPOSE_MASK is included
        window->event_mask. (#54506)

12 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/gdkwindow.c
gdk/gdkwindow.h
gdk/linux-fb/gdkwindow-fb.c
gdk/win32/gdkwindow-win32.c
gdk/x11/gdkwindow-x11.c

index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index 8903190434f32bf0b20acb153944159d3d1bf3bf..377010e46b864ee1597e262d984d911c47dc708a 100644 (file)
@@ -1,9 +1,24 @@
+Wed Feb 27 19:16:50 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): 
+       * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): 
+       * gdk/win32/gdkwindow-win32.c (gdk_window_new): 
+       * gdk/gdkwindow.h (struct _GdkWindowObject): 
+       * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events):
+       Save the window's event mask in window->event_mask.
+
+       * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only
+       generate expose events if GDK_EXPOSE_MASK is included
+       window->event_mask. (#54506)
+
 Wed Feb 27 18:50:29 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change
        events to be sent to unrealized widgets; they aren't
        really normal events in that they have anything to
-       do with widget->window. (#72914)
+       do with widget->window. (#72914, Andreas J. Guelzow)
 
 Wed Feb 27 18:39:25 2002  Owen Taylor  <otaylor@redhat.com>
 
index c79f198089731f6349bcfe7d7ddae53d73d6a176..8199e09bf63d750dfa8a9fd90fb156999d5d2ece 100644 (file)
@@ -2065,7 +2065,8 @@ gdk_window_process_updates_internal (GdkWindow *window)
       GdkRegion *update_area = private->update_area;
       private->update_area = NULL;
       
-      if (_gdk_event_func && gdk_window_is_viewable (window))
+      if (_gdk_event_func && gdk_window_is_viewable (window) &&
+         (private->event_mask & GDK_EXPOSURE_MASK))
        {
          GdkEvent event;
          GdkRectangle window_rect;
index b1e42ce2dcdbcdf494a722c10f9eceb9f0df8651..7235ce2e36f4b48a439974bc5285ed6bc282ff30 100644 (file)
@@ -260,6 +260,8 @@ struct _GdkWindowObject
   guint modal_hint : 1;
   
   guint destroyed : 2;
+  
+  GdkEventMask event_mask;
 };
 
 struct _GdkWindowObjectClass
index 13244b764731513d3a6e45c882380f2477744dfe..44a674cf6eed15c0697836f0d6429a86ead75849 100644 (file)
@@ -1751,6 +1751,8 @@ gdk_window_set_events (GdkWindow       *window,
   
   if (!GDK_WINDOW_DESTROYED (window))
     GDK_WINDOW_IMPL_FBDATA (window)->event_mask = event_mask;
+
+  GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
 }
 
 void
index a0d8d55826c3de635b6d2677af3ad2a05667bf33..91221942ecceb86fa8215a73b753709526e10a4e 100644 (file)
@@ -487,6 +487,7 @@ gdk_window_new (GdkWindow     *parent,
     title = "GDK client window";
 
   impl->event_mask = GDK_STRUCTURE_MASK | attributes->event_mask;
+  private->event_mask = impl->event_mask;
       
   if (private->parent && private->parent->guffaw_gravity)
     {
@@ -1941,6 +1942,7 @@ gdk_window_set_events (GdkWindow   *window,
   if (GDK_WINDOW_DESTROYED (window))
     return;
 
+  GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
   GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->event_mask = event_mask;
 }
 
index 37de3ff28ace415b48044add9f2f359699489e9b..21bcc8b0a9a0d701bca49632ca743e96d9970a45 100644 (file)
@@ -414,6 +414,7 @@ gdk_window_new (GdkWindow     *parent,
       if (attributes->event_mask & (1 << (i + 1)))
        xattributes.event_mask |= _gdk_event_mask_table[i];
     }
+  private->event_mask = attributes->event_mask;
   
   if (xattributes.event_mask)
     xattributes_mask |= CWEventMask;
@@ -2466,6 +2467,8 @@ gdk_window_get_events (GdkWindow *window)
          if (attrs.your_event_mask & _gdk_event_mask_table[i])
            event_mask |= 1 << (i + 1);
        }
+
+      GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
   
       return event_mask;
     }
@@ -2494,6 +2497,7 @@ gdk_window_set_events (GdkWindow       *window,
   
   if (!GDK_WINDOW_DESTROYED (window))
     {
+      GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
       xevent_mask = StructureNotifyMask;
       for (i = 0; i < _gdk_nenvent_masks; i++)
        {